Chrome 137

Data wydania stabilnej wersji: 27 maja 2025 r.

O ile nie zaznaczono inaczej, poniższe zmiany dotyczą wersji 137 Chrome na kanale stabilnym na Androida, ChromeOS, Linuxa, macOS i Windowsa.

CSS i UI

Funkcja CSS if()

Funkcja CSS if() umożliwia zwięzłe wyrażanie wartości warunkowych. Akceptuje ona serię par warunek–wartość, rozdzielonych przecinkami. Funkcja sprawdza kolejno każdy warunek i zwraca wartość powiązaną z pierwszym spełnionym warunkiem. Jeśli żaden z warunków nie zwraca wartości prawda, funkcja zwraca pusty strumień tokenów. Dzięki temu możesz wyrażać złożoną logikę warunkową w prosty i zwięzły sposób.

Przykład:

div {
  color: var(--color);
  background-color: if(style(--color: white): black; else: white);
}

.dark {
  --color: black;
}

.light {
  --color: white;
}
<div class="dark">dark</div>
<div class="light">light</div>

Śledzenie błędu #346977961 | Wpis na stronie ChromeStatus.com | Specyfikacja

Właściwości CSS reading-flow, reading-order

Właściwość CSS reading-flow określa kolejność, w jakiej elementy w układzie flex, kratce lub bloku są udostępniane narzędziom ułatwień dostępu i skupiane za pomocą klawisza tabulacji.

Właściwość CSS reading-order pozwala autorom ręcznie zastąpić kolejność w kontenerze ścieżki czytania. Jest to liczba całkowita o wartości domyślnej 0.

Więcej informacji o tych właściwościach znajdziesz w artykule Używanie sekwencyjnej nawigacji z punktami skupienia w usługach porównywania cen oraz w przykładach.

Śledzenie błędu #40932006 | Wpis na stronie ChromeStatus.com | Specyfikacja

Ignorowanie odstępów między literami w skryptach kursywy

Ta funkcja dodaje logikę, która ignoruje ustawienie odstępu między literami w przypadku skryptów kursywystycznych zgodnie z określeniami dewelopera, aby zapewnić, że odstęp między literami nie zakłóca struktury wyrazów i aby zapewnić lepsze wrażenia użytkownika korzystającego ze skryptów kursywystycznych.

Dzięki tej funkcji Chrome zapewnia czytelność czcionek kursywy i odpowiednie odstępy między znakami, nawet jeśli czcionki nie mają zaawansowanych funkcji typograficznych.

W przypadku Chromium dotyczy to skryptów: arabskiego, hanifijskiego, mandajskiego, mongolskiego, phags-pa, syryjskiego, ponieważ zgodnie ze specyfikacją są one uznawane za kursywę.

Śledzenie błędu #40618336 | Wpis na stronie ChromeStatus.com | Specyfikacja

Interfejs Selection API getComposedRanges i direction

Ta funkcja zawiera 2 nowe metody interfejsu Selection API:

  • Selection.direction, która zwraca kierunek zaznaczenia jako none, forward lub backward.
  • Selection.getComposedRanges(), która zwraca listę 0 lub 1 składową StaticRange

Składany element StaticRange może przekraczać granice cienia, czego nie może robić zwykły element Range.

Na przykład:

const range = getSelection().getComposedRanges({ shadowRoots: [root] });

Jeśli zaznaczenie przekracza granicę katalogu głównego cienia, która nie jest podana na liście shadowRoots, punkty końcowe StaticRange zostaną przeskalowane tak, aby znajdowały się poza tym drzewem. Dzięki temu Chrome nie ujawnia nieznanych drzew cieni.

Śledzenie błędu #40286116 | Wpis na stronie ChromeStatus.com | Specyfikacja

Wesprzyj kanał offset-path: shape()

Obsługa offset-path: shape(), aby umożliwić użycie kształtów elastycznych do ustawienia ścieżki animacji.

Śledzenie błędu #389713717 | Wpis na stronie ChromeStatus.com | Specyfikacja

Obsługa atrybutu transform w SVGSVGElement

Ta funkcja umożliwia zastosowanie właściwości przekształcania, takich jak skalowanie, obracanie, przesuwanie i pochylanie, bezpośrednio do elementu <svg> za pomocą jego atrybutu transform. Dzięki temu ulepszeniu możesz manipulować całym systemem współrzędnych SVG lub jego zawartością jako całością, co zapewnia większą elastyczność w tworzeniu dynamicznych, elastycznych i interakcyjnych grafik wektorowych. Dzięki obsłudze tego atrybutu element <svg> może być przekształcany bez konieczności stosowania dodatkowych elementów opakowania ani skomplikowanych obejść komunikatów CSS, co upraszcza proces tworzenia skalowanych i animowanych grafik internetowych.

Śledzenie błędu #40313130 | Informacja na stronie ChromeStatus.com | Specyfikacja

Systemowy kolor uzupełniający dla właściwości accent-color

Dzięki temu możesz używać koloru uzupełniającego systemu operacyjnego w elementach formularza. Za pomocą właściwości CSS accent-color możesz zapewnić, aby elementy formularza, takie jak pola wyboru, przyciski radiowe i paski postępu, automatycznie przyjmowały kolor akcentu zdefiniowany przez system operacyjny użytkownika. Ta funkcja jest obsługiwana w systemie macOS od 2021 r., a teraz jest dostępna także w systemach Windows i ChromeOS.

Śledzenie błędu #40764875 | Wpis na stronie ChromeStatus.com | Specyfikacja

Zezwalaj usłudze <use> na odwoływanie się do elementu głównego dokumentu zewnętrznego przez pominięcie fragmentu.

Ta funkcja upraszcza element SVG <use>, ponieważ łagodzi wymagania dotyczące odwoływania się do innych elementów. Przed wersją 137 przeglądarki Chrome trzeba było jawnie odwoływać się do fragmentów w dokumencie SVG. Jeśli nie podasz identyfikatora fragmentu, funkcja <use> nie będzie mogła rozwiązać celu, a nic nie zostanie wyrenderowane ani wyświetlone.

Na przykład element <use> odwołujący się do pliku zewnętrznego za pomocą identyfikatora fragmentu:

<svg>
  <use xlink:href="myshape.svg#icon"></use>
</svg>

W tym przykładzie #icon to identyfikator fragmentu wskazujący na element id="icon" w myshape.svg.

Bez identyfikatora fragmentu:

<svg>
  <use xlink:href="myshape.svg"></use>
</svg>

Dzięki tej funkcji pominięcie fragmentów lub podanie tylko nazwy zewnętrznego pliku SVG powoduje automatyczne odwołanie do elementu głównego. Dzięki temu nie musisz zmieniać dokumentu, do którego się odwołujesz, tylko po to, aby przypisać identyfikator do elementu głównego. To ulepszenie upraszcza proces ręcznej edycji i zwiększa wydajność.

Śledzenie błędu #40362369 | Wpis na stronie ChromeStatus.com | Specyfikacja

Typy kolorów zmiennoprzecinkowych

Wprowadza możliwość używania formatów pikseli z liczbą zmiennoprzecinkową (w przeciwieństwie do 8-bitowej liczby zmiennoprzecinkowej) w funkcjach CanvasRenderingContext2D, OffscreenCanvasRenderingContext2DImageData.

Jest to konieczne w przypadku aplikacji wymagających dużej dokładności (np. wizualizacji medycznej), treści o wysokim zakresie dynamiki i przestrzeni roboczej o kolorach liniowych.

Śledzenie błędu #40245602 | Wpis na stronie ChromeStatus.com | Specyfikacja

view-transition-name: match-element

Wartość match-element generuje unikalny identyfikator na podstawie tożsamości elementu i zmienia nazwę tego elementu. Jest to używane w przypadku aplikacji jednostronicowych, w których element jest przenoszony i chcesz go animować za pomocą przejścia widoku.

Śledzenie błędu #365997248 | Wpis na stronie ChromeStatus.com | Specyfikacja

Płatności

Dopasowanie typu błędu zwracanego podczas tworzenia danych logowania WebAuthn (payment): SecurityError staje się NotAllowedError.

Popraw typ błędu zwracany podczas tworzenia danych logowania WebAuthn dla danych logowania payment. Ze względu na historyczne niezgodności specyfikacji tworzenie danych logowania payment w ramce iframe w innej domenie bez aktywacji przez użytkownika powodowałoby zwracanie wartości SecurityError zamiast NotAllowedError, która jest zwracana w przypadku danych logowania niepłatnych.

Jest to zmiana zasadnicza, choć niszowa. Dotyczy to kodu, który wcześniej wykrył ten typ błędu (np. e instanceof SecurityError). Kod, który ogólnie obsługuje błędy podczas tworzenia danych logowania (np. catch (e)), będzie nadal działał prawidłowo.

Informacje o błędzie #41484826 | Informacje na stronie ChromeStatus.com | Specyfikacja

Interfejsy Web API

Partycjonowanie adresów URL obiektów blob: pobieranie/nawigacja

W ramach kontynuacji partycjonowania miejsca na dane w Chrome wdrożyliśmy partycjonowanie dostępu do adresu URL bloba za pomocą klucza miejsca na dane (witryna najwyższego poziomu, źródło ramki i wartość logiczna has-cross-site-ancestor), z wyjątkiem nawigacji najwyższego poziomu, które pozostaną partycjonowane tylko według źródła ramki. Takie zachowanie jest podobne do tego, które jest obecnie stosowane przez przeglądarki Firefox i Safari, i dopasowuje użycie adresu URL bloba do schematu partycjonowania używanego przez inne interfejsy API pamięci masowej w ramach partycjonowania pamięci masowej. Chrome wymusza teraz użycie noopener w przypadku nawigacji do adresów URL blobów na najwyższym poziomie zainicjowanych przez renderera, gdy odpowiednia witryna jest witryną najwyższego poziomu, która wykonuje nawigację. Dzięki temu Chrome będzie działać podobnie jak Safari, a odpowiednie specyfikacje zostały zaktualizowane, aby odzwierciedlać te zmiany.

Śledzenie błędu #40057646 | Wpis na stronie ChromeStatus.com

Stosy wywołań w raportach o awariach z niedziałających stron internetowych

Ta funkcja rejestruje stos wywołań JavaScriptu, gdy strona internetowa przestaje odpowiadać z powodu wykonywania przez kod JavaScriptu nieskończonej pętli lub innej bardzo długiej operacji. Pomaga to deweloperom zidentyfikować przyczynę braku reakcji i łatwiej ją naprawić. Zrzut stosu wywołań JavaScriptu jest dołączany do interfejsu API zgłaszania awarii, gdy przyczyną jest brak odpowiedzi.

Śledzenie błędu #1445539 | Wpis na stronie ChromeStatus.com | Specyfikacja

Document-Isolation-Policy

Document-Isolation-Policy pozwala dokumentowi samodzielnie włączyć crossOriginIsolation bez konieczności wdrażania COOP lub COEP niezależnie od stanu crossOriginIsolation strony. Zasady są obsługiwane przez izolację procesów. Dodatkowo podresury dokumentów z innych domen bez CORS będą ładowane bez poświadczeń lub będą musiały mieć nagłówek CORP.

Śledzenie błędu #333029146 | Wpis na stronie ChromeStatus.com | Specyfikacja

Ed25519 w kryptografii internetowej

Ta funkcja dodaje obsługę algorytmów Curve25519 w Web Cryptography API, w tym algorytmu podpisu Ed25519.

Śledzenie błędu #1370697 | Wpis na stronie ChromeStatus.com | Specyfikacja

Zapobieganie śledzeniu za pomocą HSTS

Ogranicza śledzenie użytkowników przez osoby trzecie za pomocą pamięci podręcznej HSTS.

Ta funkcja zezwala na zmiany HSTS tylko w przypadku nawigacji na najwyższym poziomie, a blokuje je w przypadku żądań dotyczących zasobów podrzędnych. Dzięki temu witryny innych firm nie mogą używać pamięci podręcznej HSTS do śledzenia użytkowników w sieci.

Śledzenie błędu 40725781 | Wpis na stronie ChromeStatus.com

WebAssembly

Integracja obietnic JavaScript

Interfejs JavaScript Promise Integration (JSPI) to interfejs API, który umożliwia aplikacjom WebAssembly integrację z obietnicami JavaScript.

Umożliwia ona programowi WebAssembly działanie jako generator obietnicy oraz umożliwia programowi WebAssembly interakcję z interfejsami API obsługującymi obietnice.

W szczególności, gdy aplikacja używa JSPI do wywołania interfejsu API (JavaScript) z obietnicą, kod WebAssembly jest zawieszony, a pierwotnemu wywołującemu program WebAssembly przekazywana jest obietnica, która zostanie spełniona, gdy program WebAssembly zostanie w końcu ukończony.

ChromeStatus.com entry | Spec

Wskazówki dotyczące Branch dla WebAssembly

Poprawia wydajność skompilowanego kodu WebAssembly, informując silnik, że dana instrukcja odgałęzi jest bardzo prawdopodobna.

Umożliwia to silnikowi podejmowanie lepszych decyzji dotyczących rozmieszczenia kodu (co zwiększa liczbę trafień do pamięci podręcznej instrukcji) i przydziału rejestrów.

ChromeStatus.com entry | Spec

WebGPU

GPUTextureView dla powiązania externalTexture

Podczas tworzenia GPUBindGroup można teraz używać GPUTextureView do wiązania externalTexture.

Śledzenie błędu #398752857 | Wpis na stronie ChromeStatus.com | Specyfikacja

copyBufferToBuffer przeciążenie

Metoda GPUCommandEncoder copyBufferToBuffer() umożliwia teraz prostsze kopiowanie całych buforów za pomocą nowego przeciążenia z opcjonalnymi parametrami przesunięcia i rozmiaru.

ChromeStatus.com entry | Spec

Enterprise

Rejestrowanie i raportowanie adresów IP

Chrome Enterprise zwiększa możliwości monitorowania zabezpieczeń i reagowania na incydenty, zbierając i zgłaszając adresy IP lokalne i zdalne oraz wysyłając te adresy do dzienników Security Investigation Logs (SIT). Ponadto Chrome Enterprise umożliwi administratorom opcjonalne wysyłanie adresów IP do dostawców SIEM Google i innych firm za pomocą oprogramowania sprzęgającego do raportowania Chrome Enterprise.

Ta funkcja jest dostępna dla klientów Chrome Enterprise Core.

Informacja na stronie ChromeStatus.com

Wersje próbne Origin

Atrybut blokowania renderowania pełnej liczby klatek

Do atrybutów blokujących dodaje nowy token blokujący renderowanie full-frame-rate. Gdy procesor jest zablokowany za pomocą tokena full-frame-rate, będzie działać z niższą częstotliwością klatek, aby zarezerwować więcej zasobów na wczytywanie.

Śledzenie błędu 397832388 | Informacja na stronie ChromeStatus.com

Wstrzymywanie odtwarzania multimediów w nierenderowanych iframe’ach

Dodaje zasadę uprawnień media-playback-while-not-rendered, aby umożliwić witrynom, które umieszczają treści, wstrzymywanie odtwarzania multimediów w osadzonych elementach iframe, które nie są renderowane, czyli mają właściwość display ustawioną na none. Dzięki temu deweloperzy będą mogli tworzyć bardziej przyjazne użytkownikom treści, a także zwiększać wydajność, pozwalając przeglądarce obsługiwać odtwarzanie treści, które nie są widoczne dla użytkowników.

Testowanie wersji Origin | Śledzenie błędu #351354996 | Wpis na stronie ChromeStatus.com

Rewriter API

Interfejs Rewriter API przekształca i przeformułowuje tekst wejściowy w wybrany sposób, korzystając z modelu językowego AI na urządzeniu. Deweloperzy mogą używać tego interfejsu API, aby usuwać w tekście powtórzenia, aby zmieścić się w limitie znaków, przeformułować wiadomości, aby pasowały do docelowej grupy odbiorców, lub aby były bardziej konstruktywne, jeśli zostanie stwierdzone, że wiadomość zawiera toksyczny język. Mogą też przeformułować post lub artykuł, aby używać prostszych słów i koncepcji.

Origin Trial | Śledzenie błędu #358214322 | Wpis na stronie ChromeStatus.com | Specyfikacja

Interfejs Writer API

Interfejs Writer API może służyć do tworzenia nowych materiałów na podstawie promptu zadania pisania, przy użyciu modelu językowego AI na urządzeniu. Deweloperzy będą mogli używać tego interfejsu API do generowania tekstowych wyjaśnień uporządkowanych danych, tworzenia postów o produkcie na podstawie opinii lub opisu produktu, rozszerzania list zalet i wad o pełne widoki itp.

Testowanie wersji Origin | Śledzenie błędu #357967382 | Wpis na stronie ChromeStatus.com | Specyfikacja